<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>symbol</title>
</head>
<body>
    <script>

        /*
         * ES6 引入一种新的原始数据类型Symbol, 表示独一无二的值
         * 它是JavaScript语言的第七种数据类型, 是一种类似于字符串的数据类型
         * 特点
         *    - Symbol的值是唯一的, 用来解决命名冲突的问题
         *    - Symbol的值不能与其他数据进行运算
         *    - Symbol定义的对象属性不能使用for...in循环遍历, 但是可以使用Reflect.ownKeys来获取对象的所有键名
         * 
         */
        // 创建Symbol
        let s = Symbol();
        // console.log(s, typeof s);
        let s2 = Symbol('尚硅谷');
        let s3 = Symbol('尚硅谷');
        console.log(s2 === s3); // false

        // Symbol.for 创建
        let s4 = Symbol.for('尚硅谷');
        let s5 = Symbol.for('尚硅谷');
        console.log(s4 === s5); // true

        // 不能与其他数据进行运算
        // let result = s + 100;
        // let result = s > 100;
        // let result = s + s;

    </script>
</body>
</html> 